<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>HTML5魔塔样板</title>
  <link rel="icon" href="data:;base64,iVBORw0KGgo=">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <meta name="description" content="Description">
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <link href="vue.css" rel="stylesheet">
  <script>
    //先下载着

    /*
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'https://cdn.bootcss.com/docsify/4.5.5/docsify.min.js', true);
    xhr.send(null);
    xhr = new XMLHttpRequest();
    xhr.open('GET', 'https://cdn.bootcss.com/docsify/4.5.5/plugins/search.min.js', true);
    xhr.send(null);

    (function(){
      window.bg={replaceToken:{}}
      bg.guid=function () {
        return 'id_' + 'xxxxxxxx_xxxx_4xxx_yxxx_xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
          var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
          return v.toString(16);
        });
      }
      bg.table=function(ths,tdss,args){
        return `<table class="${((args||{}).class||[]).join(' ')}"><thead><tr>${ths.map(v=>`<th style="text-align:left">${v}</th>`).join('')}</tr></thead><tbody>${tdss.map(tds=>`<tr>${tds.map(v=>`<td style="text-align:left">${v}</td>`).join('')}</tr>`).join('')}</tbody></table>`;
      }
      bg.pattern=/```\s*MotaAction.*?\r?\n[^]*?\r?\n\s*```/g;
      bg.replaceFunc=function(str){
        var content=null;
        try {
          content=eval(str.split('\n').slice(1,-1).join('\n'))
        } catch (ee) {
        }
        var match=/```\s*MotaAction(\.)?(\w+)?/.exec(str);
        var blocksvg=''
        if (!match[2] || match[2]=='action')blocksvg= bg.parseList(content);
        else blocksvg=bg.parse(content,match[2]);
        return '<p>'+blocksvg+'</p>\n\n';
      }
      bg.parse=function(obj,type){

        MotaActionFunctions.workspace().clear();
        xml_text = MotaActionFunctions.actionParser.parse(obj,type||'event');
        xml = Blockly.Xml.textToDom('<xml>'+xml_text+'</xml>');
        Blockly.Xml.domToWorkspace(xml, MotaActionFunctions.workspace());

        svgBlock=document.querySelector("g.blocklyBlockCanvas > g.blocklyDraggable")
        svgBlock.setAttribute('transform','translate(0,0)')
        tmp={width:svgBlock.getBBox().width,height:svgBlock.getBBox().height}

        var id=`<span>${bg.guid()}</span>`
        bg.replaceToken[id]=`<svg width="${tmp.width}px" height="${tmp.height}px">`+svgBlock.outerHTML+'</svg>'
        return id;
      }
      bg.parseList=function(obj){

        MotaActionFunctions.workspace().clear();
        xml_text = MotaActionFunctions.actionParser.parseList(obj);
        xml = Blockly.Xml.textToDom('<xml>'+xml_text+'</xml>');
        Blockly.Xml.domToWorkspace(xml, MotaActionFunctions.workspace());

        svgBlock=document.querySelector("g.blocklyBlockCanvas > g.blocklyDraggable")
        svgBlock.setAttribute('transform','translate(0,0)')
        tmp={width:svgBlock.getBBox().width,height:svgBlock.getBBox().height}

        var id=`<span>${bg.guid()}</span>`
        bg.replaceToken[id]=`<svg width="${tmp.width}px" height="${tmp.height}px">`+svgBlock.outerHTML+'</svg>'
        return id;
      }
    })()
    */
  </script>
</head>
<body>
  <div id="app"></div>
  <xml id="toolbox" style="display:none"></xml>
  <div id="blocklyArea" style="opacity: 0;z-index: -1;"><div id="blocklyDiv"></div></div>
  <textarea id="codeArea" style="display:none" spellcheck="false"></textarea>
  <script>
    window.$docsify = {
      homepage: 'index.md',
      loadSidebar: true,
      name: 'HTML5魔塔样板',
      repo: 'https://github.com/ckcz123/mota-js',
      // basepath: '../docs/',
      
        // Search Support
      search: {
        maxAge: 43200000, // 过期时间，单位毫秒，默认一天
        paths: 'auto',
        placeholder: {
          '/': '搜索文档...',
        },
        noData: {
          '/': '找不到结果',
        },
      },

       // load sidebar from _sidebar.md
      loadSidebar: '_sidebar',
      subMaxLevel: 2,
      autoHeader: true,
      auto2top: true,
      mergeNavbar: true,
      formatUpdated: '{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}',
      plugins: [
        /*
        function(hook){

          var renderScriptNode=function(str){
            return str.replace(/```.*?\r?\n['"]run['"];[^]*?\r?\n```/g,function(x){
              return eval(`(function(){${x.replace(/```.*?\r?\n['"]run['"];/,'').slice(0,-3)}})()`)
            })
          }

          var renderMotaAction=function(str){
            return str.replace(bg.pattern,function(x){
              return bg.replaceFunc(x)
            })
          }

          hook.beforeEach(function(content){
            return renderMotaAction(renderScriptNode(
              content
            ))
          })

          hook.doneEach(function(){
            var map=bg.replaceToken
            var node=document.querySelector('.markdown-section')
            var str=node.innerHTML
            for(var id in map){
              str=str.replace(id,map[id])
            }
            node.innerHTML=str
          })
        }
        */
      ]
    }
  </script>
  <!-- 为了保证时序用脚本加载这两个 --> 
  <script src="docsify.min.js"></script>
  <script src="search.min.js"></script> 
  <!--
  <script src="../_server/blockly/Converter.bundle.min.js"></script>
  <script src="../_server/blockly/blockly_compressed.js"></script>
  <script src="../_server/blockly/blocks_compressed.js"></script>
  <script src="../_server/blockly/javascript_compressed.js"></script>
  <script src="../_server/blockly/zh-hans.js"></script>
  <script src='../_server/MotaActionParser.js'></script>
  <script>
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState != 4) return;
        if (xhr.status != 200) {
            alert("图块描述文件加载失败, 请在'启动服务.exe'中打开编辑器");
            return;
        }
        var grammerFile = xhr.responseText;
        converter = new Converter().init();
        converter.generBlocks(grammerFile);
        //printf(converter.blocks);
        converter.renderGrammerName();
        //converter.generToolbox();
        converter.generMainFile();
        //printf(converter.mainFile.join(''));
        //console.log(converter);

        var script = document.createElement('script');
        script.innerHTML = converter.mainFile[5] + converter.mainFile[6];
        window.core={material:{items:[],enemys:[]}}
        document.body.appendChild(script);
        MotaActionFunctions.disableReplace = true;
        MotaActionFunctions.disableExpandCompare = true;

        script = document.createElement('script');
        script.src='https://cdn.bootcss.com/docsify/4.5.5/docsify.min.js'
        document.body.appendChild(script);
        script = document.createElement('script');
        script.src='https://cdn.bootcss.com/docsify/4.5.5/plugins/search.min.js'
        document.body.appendChild(script);
    }
    xhr.open('GET', '../_server/MotaAction.g4', true);
    xhr.send(null);
  </script> -->
</body>
</html>
